【计算机】数据结构

您所在的位置:网站首页 数据结构严蔚敏 pdf 【计算机】数据结构

【计算机】数据结构

2023-08-07 19:19| 来源: 网络整理| 查看: 265

【计算机】数据结构-严蔚敏/清华大学P7

第二章 线性表 五、其它形式的链表 1.双向链表

双向链表(Double Linked List) :指的是构成链表的每个结点中设立两个指针域:一个指向其直接前趋的指针域prior,一个指向其直接后继的指针域next。这样形成的链表中有两个方向不同的链,故称为双向链表。    

和单链表类似,双向链表一般增加头指针也能使双链表上的某些运算变得方便。    

将头结点和尾结点链接起来也能构成循环链表,并称之为双向循环链表。    

双向链表是为了克服单链表的单向性的缺陷而引入的。

1   双向链表的结点及其类型定义      

双向链表的结点的类型定义如下。其结点形式如图2-7所示,带头结点的双向链表的形式如图2-8所示。

typedef struct Dulnode {

    ElemType  data ;

    struct Dulnode  *prior , *next ;

}DulNode ;

2.循环链表

循环链表(Circular Linked List):是一种头尾相接的链表。其特点是最后一个结点的指针域指向链表的头结点,整个链表的指针域链接成一个环。

        从循环链表的任意一个结点出发都可以找到链表中的其它结点,使得表处理更加方便灵活。

第三章 栈和队列 3.1 栈的类型定义

ADT Stack{

    数据对象:D ={ ai|ai∈ElemSet,  i=1,2,…,n,n≥0 }

    数据关系:R ={|ai-1,ai∈D,  i=2,3,…,n }

    基本操作:初始化、进栈、出栈、取栈顶元素等

} ADT Stack

3.2 栈的应用举例

-----------------END----------------- 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3